package com.eunion.web.admin.service;

import java.util.List;

import org.springframework.data.domain.Page;

import com.eunion.core.common.KvVo;
import com.eunion.core.common.ZtreeStringVo;
import com.eunion.web.admin.entity.AdminAuth;
import com.eunion.web.common.base.BaseService;

/**
 * @see AdminAuth
 * 
 */
public interface AdminAuthService extends BaseService<AdminAuth, String> {

	/**
	 * JDBC jdbctemplate 测试.
	 */
	List<AdminAuth> getAllAdminAuth();
	
	/**
	 * 查询该权限代码或权限名字是否有已经已经被其它权限使用.
	 * @param parentAuthCode 父权限代码
	 * @return 符合条件的查询列表.
	 */
	List<AdminAuth> findByParentAuthCode(String parentAuthCode);

	/**
	 * 查询该权限代码或权限名字是否有已经使用.
	 * @param authCode 权限代码
	 * @param authName 权限名字
	 * @return 符合条件的查询列表.
	 */
	List<AdminAuth> findByAuthCodeOrAuthName(String authCode, String authName);

	/**
	 * 查询现在的权限列表.
	 * @return 返回权限列表.
	 */
	List<KvVo> findAllAuths();

	/**
	 * 根据角色代码查询下面的权限代码.
	 * @param roleCodes 角色代码
	 * @return 权限代码
	 */
	List<String> findAuthsByRoleCodes(List<String> roleCodes);

	/**
	 * 查询现在的权限列表供ztree使用.
	 * @return 返回权限列表.
	 */
	List<ZtreeStringVo> findAllAuthsForZtree();

	/**
	 * 获取所有的权限代码，用户给管理员赋权限.
	 */
	List<String> findAuths();
}
